1. Field of the Invention
The present invention relates to the field of data communications networks. More particularly, this invention relates to a method and apparatus for implementing a quality of service (QoS) policy in a data communications network so as to thereby prioritize network traffic into a plurality of service levels and provide preferential treatment of different classes of data traffic on the data communications network. A number of priority levels may be implemented in accordance with the invention.
2. The Background
This invention relates to switched packet data communications networks. There are a number of different packet types which are used in modern switched packet data communications networks.
FIG. 1A depicts a generic packet 8 using Layer 2 encapsulation. A number of different Layer 2 encapsulation protocols are recognized. Each includes a MAC (media access control) destination address 10 and a MAC source address 12. The data 14 may include Layer 3 encapsulated packet information. A CRC (cyclic redundancy check) 16 is also provided at the end of the Layer 2 encapsulation. The unlabeled block 18 may include an Ethernet type for Ethernet V 2.0 (ARPA) packets. The Ethernet type may include IPv4 (IP) (in the future, IPv6), IPX, AppleTalk, DEC Net, Vines IP/Vines Echo, XNS, ARP or RARP. Other known encapsulations include SAP, SAP1, SNAP and the like. The meaning of the bits in block 18 differs among the different encapsulation protocols. This information is sometimes referred to as the Layer 2 Flow Information.
FIG. 1B depicts a typical IP packet (Layer 3) structure. The IP packet format is presently one of the most common Layer 3 packet types. The fields of importance to this disclosure are the “ToS value” or type of service 26 which is a preferably 8-bit field also known as Differentiated Services (“DS”), “prot-typ” or IP protocol type 28 (typically either TCP (transmission control protocol) or UDP (user datagram protocol), the Source IP address 30 (usually the IP address of the originating station), the Destination IP address 32 (usually the IP address of the ultimate destination station), the Layer 4 source port number 34 (available for TCP and UDP packets only) and the Layer 4 destination port number 36 (available for TCP and UDP packets only). The Layer 4 flow information may be used to identify a particular packet flow as being the product of (source port) or directed to (destination port) a particular application. The ToS/Differentiated Services field is used by routers of the data communications network to provide priority/delay/dropping services.
As the use of data communications networks increases worldwide, congestion of those networks has become a problem. A given data communications network, a given node on a data communications network, or a given link connecting two nodes has a certain capacity to pass data packets and that capacity cannot be exceeded. When data traffic on the data communications network becomes heavy enough that one can anticipate congestion problems which might lead to packets being dropped, it is desirable to implement a “Quality of Service” or QoS policy so as to give priority to certain types of traffic and/or customers so as not to drop their packets, thus assuring that critical communications are able to pass through the data communications network and/or providing a guaranteed service level, albeit at the expense of less critical communications.
The QoS level mapped into the ToS/Differentiated Services precedence bits (or other bits of the packet) is used by devices such as routers, gateways and switches within a data communications network in a number of ways. For example, packet rate limiting may be imposed to cap a user's throughput of packets to a given contract level specified in a service agreement with the user. In this way limited system services may not be over-used by those paying the least for those services. In another example, packet rate limiting may be imposed under congested network conditions to drop or modify packets based, at least in part, upon the QoS level associated with the packet. Those with a “higher” QoS level will do better in getting their communications through in congested conditions than those with a “lower” QoS level.
One way in which the ToS bits of the IP header are presently used is to use edge routers 38 as shown in FIG. 2 to interface between users 40 and core routers 42, 44, 46. In accordance with this approach the edge routers are used to set the ToS precedence bits (the highest order three bits of the eight-bit ToS/Differentiated Services field) based upon the source IP address of the packet. While this can be effective in some environments, it is rather inflexible since it is based solely on pre-programmed IP addresses and creates administrative burdens in programming all of the edge routers. It is also ineffective in handling many types of roaming users and/or users with dynamically assigned IP addresses such as those obtained or leased from DHCP (dynamic host control protocol) servers.
Accordingly, a need exists for a QoS system which can provide for the QoS needs of roaming or DHCP users while simplifying the task of programming QoS levels associated with the user. Furthermore, it would be desirable to provide a QoS system that provides on-demand QoS rather than a fixed QoS for each user to better accommodate the shifting needs of users.